/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * CadastraCliente.java
 *
 * Created on 29/03/2012, 01:42:26
 */
package tela;

import bd.Consultas;
import java.awt.Color;
import java.awt.Cursor;
import java.sql.SQLException;
import java.util.*;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.util.JRLoader;
import relatorio.ConectaBanco;
import relatorio.ReportUtils;
import tabela.Analise;
import tabela.Cliente;
import tabela.Funcionario;
import tabela.PedidoServico;
import tabela.ResponsavelTecnico;
import tabela.Resultado;
import tabela.ResultadoAnalise;

/**
 *
 * @author Edu
 */
public class CadastraBuscaInformacaoResultado extends javax.swing.JPanel {

    /**
     * Creates new form CadastraCliente
     */
    private int ERRO = 0;
    private int SUCESSO = 1;
    private int INFO = 2;
    private PedidoServico pedidoSelecionado = null;
    private Resultado resultadoSelecionado = null;

    public CadastraBuscaInformacaoResultado() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        buttonGroup1 = new javax.swing.ButtonGroup();
        jTextFieldNomeCliente = new javax.swing.JTextField();
        jPanel1 = new javax.swing.JPanel();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jPanel3 = new javax.swing.JPanel();
        jScrollPane5 = new javax.swing.JScrollPane();
        tabelaNomes = new javax.swing.JTable();
        jScrollPane9 = new javax.swing.JScrollPane();
        tabelaResultados = new javax.swing.JTable();
        jPanel2 = new javax.swing.JPanel();
        jLabel25 = new javax.swing.JLabel();
        jTextFieldBuscaCliente = new javax.swing.JTextField();
        jButton2 = new javax.swing.JButton();
        jScrollPane3 = new javax.swing.JScrollPane();
        jListClientes = new javax.swing.JList();
        jScrollPane6 = new javax.swing.JScrollPane();
        mensagens = new javax.swing.JTextArea();
        jPanel4 = new javax.swing.JPanel();
        jScrollPane7 = new javax.swing.JScrollPane();
        jListPedidos = new javax.swing.JList();
        jButtonSalvarResultado = new javax.swing.JButton();
        btnNovoResultado = new javax.swing.JButton();
        jLabel2 = new javax.swing.JLabel();
        dataPedido = new javax.swing.JFormattedTextField();
        numResultado = new javax.swing.JTextField();
        jLabel12 = new javax.swing.JLabel();
        jPanel7 = new javax.swing.JPanel();
        jScrollPane8 = new javax.swing.JScrollPane();
        jListResultados = new javax.swing.JList();
        jButtonVisualizaPedido1 = new javax.swing.JButton();
        jPanel8 = new javax.swing.JPanel();
        jScrollPane10 = new javax.swing.JScrollPane();
        jListAnalises = new javax.swing.JList();
        jButtonAddAnalise = new javax.swing.JButton();
        jLabel13 = new javax.swing.JLabel();
        jComboBoxSemente = new javax.swing.JComboBox();
        jButtonListarAnalises = new javax.swing.JButton();
        jLabel3 = new javax.swing.JLabel();
        observacao = new javax.swing.JTextField();
        btnExcluir = new javax.swing.JButton();
        btInformacaoResultado = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        jComboBox1 = new javax.swing.JComboBox();
        jLabel14 = new javax.swing.JLabel();
        jComboBoxAnalisesAdicionadas = new javax.swing.JComboBox();
        jButtonExcluirAnalise = new javax.swing.JButton();

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        jTextFieldNomeCliente.setEditable(false);

        setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jPanel1.setBackground(new java.awt.Color(255, 255, 255));

        jLabel6.setBackground(new java.awt.Color(255, 255, 255));
        jLabel6.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel6.setText("Informação de Resultado");

        jLabel7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/figura/seta.png"))); // NOI18N
        jLabel7.setMinimumSize(new java.awt.Dimension(10, 256));

        jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 153, 153), 2, true), "Resultado da Análise", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 3, 14), java.awt.Color.gray)); // NOI18N

        tabelaNomes.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        tabelaNomes.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {"Pureza (%)"},
                {"Material Inerte (%)"},
                {"Determinação O. Espécies (nº/g)"},
                {"Determinação S. Silvestres (nº/g)"},
                {"Deter. S. Nocivas Toleradas (nº/g)"},
                {"Deter. S. Nocivas Proibidass (nº/g)"},
                {"Grãos Caract. Dif. (nº/g)"},
                {"Germinação (%)"},
                {"Env. Acelerado (%)"},
                {"Peso de Mil Grãos (g)"},
                {"Teste TZ Vigor (%)"},
                {"Teste TZ Viabilidade (%)"}
            },
            new String [] {
                "Nº da Amostra"
            }
        ));
        tabelaNomes.setAlignmentX(0.0F);
        tabelaNomes.setAlignmentY(0.0F);
        tabelaNomes.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        tabelaNomes.setEnabled(false);
        tabelaNomes.setIntercellSpacing(new java.awt.Dimension(2, 2));
        tabelaNomes.getTableHeader().setResizingAllowed(false);
        tabelaNomes.getTableHeader().setReorderingAllowed(false);
        jScrollPane5.setViewportView(tabelaNomes);

        tabelaResultados.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {},
                {},
                {},
                {},
                {},
                {},
                {},
                {},
                {},
                {},
                {},
                {}
            },
            new String [] {

            }
        ));
        tabelaResultados.setAlignmentX(0.0F);
        tabelaResultados.setAlignmentY(0.0F);
        tabelaResultados.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        tabelaResultados.setIntercellSpacing(new java.awt.Dimension(2, 2));
        jScrollPane9.setViewportView(tabelaResultados);

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 223, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane9)
                .addContainerGap())
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane9, javax.swing.GroupLayout.DEFAULT_SIZE, 223, Short.MAX_VALUE)
                    .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
                .addGap(14, 14, 14))
        );

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 153, 153), 2, true), "Buscar Cliente", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 3, 14), java.awt.Color.gray)); // NOI18N

        jLabel25.setText("Nome/Razão Social");

        jButton2.setText("Buscar");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jListClientes.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                jListClientesValueChanged(evt);
            }
        });
        jScrollPane3.setViewportView(jListClientes);

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(jLabel25)
                        .addGap(0, 110, Short.MAX_VALUE))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addComponent(jTextFieldBuscaCliente)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jButton2)))
                        .addContainerGap())))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel25)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextFieldBuscaCliente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        mensagens.setEditable(false);
        mensagens.setBackground(new java.awt.Color(204, 204, 204));
        mensagens.setColumns(20);
        mensagens.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
        mensagens.setForeground(new java.awt.Color(204, 0, 0));
        mensagens.setRows(1);
        mensagens.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
        jScrollPane6.setViewportView(mensagens);

        jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 153, 153), 2, true), "Pedidos do Cliente", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 3, 14), java.awt.Color.gray)); // NOI18N

        jListPedidos.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                jListPedidosValueChanged(evt);
            }
        });
        jScrollPane7.setViewportView(jListPedidos);

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jScrollPane7, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(34, 34, 34))
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane7)
                .addContainerGap())
        );

        jButtonSalvarResultado.setText("Salvar Resultado");
        jButtonSalvarResultado.setEnabled(false);
        jButtonSalvarResultado.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonSalvarResultadoActionPerformed(evt);
            }
        });

        btnNovoResultado.setText("Novo Resultado");
        btnNovoResultado.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnNovoResultadoActionPerformed(evt);
            }
        });

        jLabel2.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jLabel2.setText("Data do recebimento: ");

        dataPedido.setEditable(false);
        try {
            dataPedido.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("##/##/####")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }

        numResultado.setEditable(false);
        numResultado.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N

        jLabel12.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        jLabel12.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel12.setText("Resultado Nº");

        jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 153, 153), 2, true), "Resultados", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 3, 14), java.awt.Color.gray)); // NOI18N

        jScrollPane8.setViewportView(jListResultados);

        jButtonVisualizaPedido1.setText("Visualizar/Alterar");
        jButtonVisualizaPedido1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonVisualizaPedido1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
        jPanel7.setLayout(jPanel7Layout);
        jPanel7Layout.setHorizontalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel7Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(jButtonVisualizaPedido1, javax.swing.GroupLayout.DEFAULT_SIZE, 160, Short.MAX_VALUE)
                    .addComponent(jScrollPane8, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel7Layout.setVerticalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel7Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane8, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jButtonVisualizaPedido1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        jPanel8.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 153, 153), 2, true), "Resultados", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Arial", 3, 14), java.awt.Color.gray)); // NOI18N

        jListAnalises.setEnabled(false);
        jScrollPane10.setViewportView(jListAnalises);

        jButtonAddAnalise.setText("Adicionar análise nos resultados");
        jButtonAddAnalise.setEnabled(false);
        jButtonAddAnalise.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonAddAnaliseActionPerformed(evt);
            }
        });

        jLabel13.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jLabel13.setText("Resultado da Analise de");

        jComboBoxSemente.setEnabled(false);

        jButtonListarAnalises.setText("Listar análises");
        jButtonListarAnalises.setEnabled(false);
        jButtonListarAnalises.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonListarAnalisesActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8);
        jPanel8.setLayout(jPanel8Layout);
        jPanel8Layout.setHorizontalGroup(
            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel8Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jComboBoxSemente, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jLabel13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jButtonListarAnalises, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGap(18, 18, 18)
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jButtonAddAnalise, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jScrollPane10, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel8Layout.setVerticalGroup(
            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel8Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel8Layout.createSequentialGroup()
                        .addComponent(jLabel13)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jComboBoxSemente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jScrollPane10, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButtonListarAnalises)
                    .addComponent(jButtonAddAnalise))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jLabel3.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jLabel3.setText("Observação:");

        btnExcluir.setText("Excluir");
        btnExcluir.setEnabled(false);
        btnExcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnExcluirActionPerformed(evt);
            }
        });

        btInformacaoResultado.setText("Informação de Resultado");
        btInformacaoResultado.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btInformacaoResultadoActionPerformed(evt);
            }
        });

        jLabel1.setText("Selecione o responsável");

        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Cezar A. Neuls", "Matheus L. Testa" }));

        jLabel14.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jLabel14.setText("Excluir análise");

        jButtonExcluirAnalise.setText("Excluir");
        jButtonExcluirAnalise.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonExcluirAnaliseActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 211, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jPanel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, 183, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(10, 10, 10)
                                .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(18, 18, 18)
                                .addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                                .addComponent(jLabel3)
                                .addGap(14, 14, 14)
                                .addComponent(observacao, javax.swing.GroupLayout.PREFERRED_SIZE, 944, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(0, 0, Short.MAX_VALUE))
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(jScrollPane6, javax.swing.GroupLayout.PREFERRED_SIZE, 605, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(btnNovoResultado, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(btnExcluir, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(jLabel1)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jButtonSalvarResultado, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(btInformacaoResultado, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGap(0, 0, Short.MAX_VALUE)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(jLabel14)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addComponent(jComboBoxAnalisesAdicionadas, javax.swing.GroupLayout.PREFERRED_SIZE, 182, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jButtonExcluirAnalise))
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(jLabel12)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addComponent(numResultado, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(638, 638, 638)
                                        .addComponent(jLabel2)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(dataPedido, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(9, 9, 9)))))
                        .addGap(33, 33, 33))))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(12, 12, 12)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel12)
                    .addComponent(numResultado, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(dataPedido, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel14)
                    .addComponent(jComboBoxAnalisesAdicionadas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButtonExcluirAnalise))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(observacao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane6, javax.swing.GroupLayout.DEFAULT_SIZE, 28, Short.MAX_VALUE)
                    .addComponent(btnNovoResultado, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(btnExcluir, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jButtonSalvarResultado, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(btInformacaoResultado, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1))
                .addGap(34, 34, 34))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(51, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(116, Short.MAX_VALUE))
        );
    }// </editor-fold>//GEN-END:initComponents

    private void jButtonVisualizaPedido1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonVisualizaPedido1ActionPerformed

//        if (resultadoSelecionado == null) 
//            return;
//        
        //limpa a tabela
        DefaultTableModel modell = (DefaultTableModel) tabelaResultados.getModel();
        String data[][] = {};
        String col[] = {};
        modell.setDataVector(data, col);

        jComboBoxAnalisesAdicionadas.removeAllItems();

        DefaultTableModel model = (DefaultTableModel) tabelaResultados.getModel();
        resultadoSelecionado = (Resultado) Consultas.getUmaLinha("from Resultado where idResultado='" + jListResultados.getSelectedValue().toString() + "'");

        for (Object o : resultadoSelecionado.getResultadoAnalises()) {

            ResultadoAnalise ra = (ResultadoAnalise) o;
            jComboBoxAnalisesAdicionadas.addItem(ra.getIdResultadoAnalise());
            model.addColumn(ra.getIdResultadoAnalise(), new String[]{
                        ra.getPureza(),
                        ra.getMaterialInerte(),
                        ra.getDetOEspecies(),
                        ra.getDetSSilvestres(),
                        ra.getDetSNocivasToleradas(),
                        ra.getDetSNocivasProibidas(),
                        ra.getGraosCaractDif(),
                        ra.getGerminacao(),
                        ra.getEnvAcelerado(),
                        ra.getPesoMilGraos(),
                        ra.getTesteTzVigor(),
                        ra.getTesteTzViabilidade()});
        }


        dataPedido.setText(resultadoSelecionado.getPedidoServico().getDataPedidoServico());
        numResultado.setText(resultadoSelecionado.getIdResultado());
        observacao.setText(resultadoSelecionado.getObservacaoResultado());

        jButtonSalvarResultado.setEnabled(true);
        jComboBoxSemente.setEnabled(true);
        jListAnalises.setEnabled(true);
        jButtonListarAnalises.setEnabled(true);
        jButtonAddAnalise.setEnabled(true);
        btnExcluir.setEnabled(true);

    }//GEN-LAST:event_jButtonVisualizaPedido1ActionPerformed

    private void btnNovoResultadoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNovoResultadoActionPerformed

        resultadoSelecionado = null;
        dataPedido.setEnabled(true);
        jButtonSalvarResultado.setEnabled(true);
        jComboBoxSemente.setEnabled(true);
        jListAnalises.setEnabled(true);
        jButtonListarAnalises.setEnabled(true);
        jButtonAddAnalise.setEnabled(true);
        btnExcluir.setEnabled(false);

        jListClientes.clearSelection();
        jListClientes.setListData(new Object[0]);
        jListPedidos.clearSelection();
        jListPedidos.setListData(new Object[0]);
        jListResultados.clearSelection();
        jListResultados.setListData(new Object[0]);
        jListAnalises.setListData(new Object[0]);
        jComboBoxSemente.removeAllItems();

        observacao.setText("");
        numResultado.setText("");
        dataPedido.setText("");

        //limpa a tabela
        DefaultTableModel modell = (DefaultTableModel) tabelaResultados.getModel();
        String data[][] = {};
        String col[] = {};
        modell.setDataVector(data, col);

        mensagem("Novo", INFO);

    }//GEN-LAST:event_btnNovoResultadoActionPerformed

    private void jButtonSalvarResultadoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonSalvarResultadoActionPerformed

        if (tabelaResultados.getModel().getRowCount() == 0) {
            String mensagem = "Nenhum resultado adicionado";
            mensagem(mensagem, ERRO);
            return;
        }

        alteraCursor(1);

        DefaultTableModel model = (DefaultTableModel) tabelaResultados.getModel();
        String sql;

        Resultado resultado = null;
        //novo resultado
        if (resultadoSelecionado == null) {
            resultado = new Resultado(getIdDisponivel());
            resultado.setPedidoServico(pedidoSelecionado);

            if (Consultas.salvaNoBanco(resultado)) {
                mensagem("Resultado " + resultado.getIdResultado() + " salvo com sucesso!", SUCESSO);
            } else {
                mensagem("Erro ao salvar Resultado!", ERRO);
            }

        } else {//modificacao
            resultado = resultadoSelecionado;
            String idAnaliseResultado;
            boolean estaNaTabela = false;
            Set<ResultadoAnalise> resultadoAnaliseParaExcluir = new HashSet<>();
            
            //passar por todas as analises para ver se tem alguma que esta no banco e nao esta na tabela da tela, se nao estiver entao tem que ser excluida
            for (Object o : resultadoSelecionado.getResultadoAnalises()) {
                estaNaTabela = false;
                ResultadoAnalise ra = (ResultadoAnalise) o;
                for (int i = 0; i < model.getColumnCount(); i++) {
                    idAnaliseResultado = model.getColumnName(i);
                    if (ra.getIdResultadoAnalise().equals(idAnaliseResultado)) {
                        estaNaTabela = true;
                    }
                }
                if (!estaNaTabela) {
                    resultadoAnaliseParaExcluir.add(ra);
                }
            }
            for (Object o : resultadoAnaliseParaExcluir) {
                Consultas.removeDoBanco(o);
            }
        }

        Set<ResultadoAnalise> valoresTabela = new HashSet<>();

        for (int i = 0; i < model.getColumnCount(); i++) {
            sql = "from Analise where idAnalise='" + model.getColumnName(i) + "'";
            Analise a = (Analise) Consultas.getUmaLinha(sql);

            ResultadoAnalise r = new ResultadoAnalise();

            r.setAnalise(a);
            r.setIdResultadoAnalise(a.getIdAnalise());
            r.setPureza(model.getValueAt(0, i).toString());
            r.setMaterialInerte(model.getValueAt(1, i).toString());
            r.setDetOEspecies(model.getValueAt(2, i).toString());
            r.setDetSSilvestres(model.getValueAt(3, i).toString());
            r.setDetSNocivasToleradas(model.getValueAt(4, i).toString());
            r.setDetSNocivasProibidas(model.getValueAt(5, i).toString());
            r.setGraosCaractDif(model.getValueAt(6, i).toString());
            r.setGerminacao(model.getValueAt(7, i).toString());
            r.setEnvAcelerado(model.getValueAt(8, i).toString());
            r.setPesoMilGraos(model.getValueAt(9, i).toString());
            r.setTesteTzVigor(model.getValueAt(10, i).toString());
            r.setTesteTzViabilidade(model.getValueAt(11, i).toString());

            r.setResultado(resultado);

            if (!Consultas.salvaNoBanco(r)) {
                mensagem("Erro ao salvar Resultado!", ERRO);
                return;
            }

            valoresTabela.add(r);
        }

        resultado.setResultadoAnalises(valoresTabela);
        resultado.setObservacaoResultado(observacao.getText());

        if (Consultas.salvaNoBanco(resultado)) {
            mensagem("Resultado " + resultado.getIdResultado() + " salvo com sucesso!", SUCESSO);

            //atualiza a tela
            jListPedidosValueChanged(null);
            jListResultados.setSelectedValue(resultado.getIdResultado(), true);
            jButtonVisualizaPedido1ActionPerformed(null);

        } else {
            mensagem("Erro ao salvar Resultado!", ERRO);
        }

        alteraCursor(0);

    }//GEN-LAST:event_jButtonSalvarResultadoActionPerformed

    private void jListPedidosValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_jListPedidosValueChanged

        if (jListClientes.isSelectionEmpty()) {
            return;
        }

        String numeroPedido = jListClientes.getSelectedValue().toString();
        if (numeroPedido.equals("Nenhuma ocorrência")) {
            return;
        }

        if (jListClientes.getSelectedValue() == null) {
            mensagem("Selecione um Cliente", ERRO);
            return;
        }
        if (jListClientes.getSelectedValue() == null) {
            mensagem("Selecione um Pedido", ERRO);
            return;
        }

        if (resultadoSelecionado != null) {

            dataPedido.setEnabled(false);
            jButtonSalvarResultado.setEnabled(false);
            jComboBoxSemente.setEnabled(false);
            jListAnalises.setEnabled(false);
            jButtonListarAnalises.setEnabled(false);
            jButtonAddAnalise.setEnabled(false);
            btnExcluir.setEnabled(false);

            jListResultados.clearSelection();
            jListResultados.setListData(new Object[0]);
            jListAnalises.setListData(new Object[0]);

            observacao.setText("");
            numResultado.setText("");
            dataPedido.setText("");

            //limpa a tabela
            DefaultTableModel modell = (DefaultTableModel) tabelaResultados.getModel();
            String data[][] = {};
            String col[] = {};
            modell.setDataVector(data, col);

            jComboBoxAnalisesAdicionadas.removeAllItems();
        }


        jComboBoxSemente.removeAllItems();

        String sql = "from PedidoServico where idPedidoServico='" + jListPedidos.getSelectedValue().toString() + "'";
        PedidoServico pedidoServico = (PedidoServico) Consultas.getUmaLinha(sql);

        List<String> listaSementes = new ArrayList<String>();

        for (Object o : pedidoServico.getAnalises()) {
            Analise a = (Analise) o;
            String especie = a.getEspecie();
            //monta o combo com todas as especies do pedido
            if (!listaSementes.contains(especie)) {
                listaSementes.add(especie);
            }
        }
        for (Object o : listaSementes) {
            jComboBoxSemente.addItem(o);
        }
        if (listaSementes.isEmpty()) {
            jComboBoxSemente.addItem("Não existe análises/sementes cadastradas");
        } else {
            jComboBoxSemente.addItem("Selecione");
            jComboBoxSemente.setSelectedItem("Selecione");
        }

        pedidoSelecionado = pedidoServico;

        sql = "from Resultado where pedidoServico='" + jListPedidos.getSelectedValue().toString() + "'";


        Vector tableData = new Vector();
        for (Object o : Consultas.getListObjetos(sql)) {
            Resultado r = (Resultado) o;
            tableData.add(r.getIdResultado());
        }
        if (tableData.size() == 0) {
            tableData.add("Nenhuma ocorrência");
        }
        jListResultados.setListData(tableData);

    }//GEN-LAST:event_jListPedidosValueChanged

    private void jListClientesValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_jListClientesValueChanged
        if (jListClientes.getSelectedValue() == null) {
            return;
        }
        if (jListClientes.getSelectedValue().equals("Nenhuma ocorrência")) {
            return;
        }
        String sql = "from Cliente where nomeCliente='" + jListClientes.getSelectedValue().toString() + "' OR razaoSocialCliente='" + jListClientes.getSelectedValue().toString() + "'";
        Cliente cliente = (Cliente) Consultas.getUmaLinha(sql);
        preencheListaPedidos(cliente.getPedidoServicos());
    }//GEN-LAST:event_jListClientesValueChanged

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        alteraCursor(1);
        String sql = "from Cliente where upper(nomeCliente) like upper('%" + jTextFieldBuscaCliente.getText() + "%') OR upper(razaoSocialCliente) like upper('%" + jTextFieldBuscaCliente.getText() + "%')";
        preencheListaBusca(Consultas.getListObjetos(sql));
        alteraCursor(0);
    }//GEN-LAST:event_jButton2ActionPerformed

    private void jButtonListarAnalisesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonListarAnalisesActionPerformed
        System.out.println("jComboBoxSementeActionPerforme");
        if (jListClientes.getSelectedValue() == null) {
            mensagem("Selecione um Pedido", ERRO);
            return;
        }
        if (jComboBoxSemente.getSelectedItem().toString().equals("Não existe análises/sementes cadastradas") || jComboBoxSemente.getSelectedItem().toString().equals("Selecione")) {
            mensagem("Selecione uma Semente", ERRO);
            return;
        }
        DefaultTableModel model = (DefaultTableModel) tabelaResultados.getModel();
        List<String> listaAnalises = new ArrayList<>();

        String especeSelecionada = jComboBoxSemente.getSelectedItem().toString();
        String especie;
        Analise a;
        for (Object o : pedidoSelecionado.getAnalises()) {
            a = (Analise) o;
            especie = a.getEspecie();
            //se for a mesma especie adiciona no combo
            if (especie.equals(especeSelecionada)) {
                listaAnalises.add(a.getIdAnalise());
            }
        }
        jListAnalises.setListData(listaAnalises.toArray());
    }//GEN-LAST:event_jButtonListarAnalisesActionPerformed

    private void jButtonAddAnaliseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAddAnaliseActionPerformed
        String analiseSelecionada = jListAnalises.getSelectedValue().toString();
        DefaultTableModel model = (DefaultTableModel) tabelaResultados.getModel();

        if (model.getColumnCount() == 15) {
            mensagem("Não é permitido salvar mais que 15 resultados", ERRO);
            return;
        }

        int i = 0;
        String idAnaliseTabela;
        String sql;
        for (Object o : pedidoSelecionado.getAnalises()) {
            Analise a = (Analise) o;

            if (a.getIdAnalise().equals(analiseSelecionada)) {
                //se ja foi adicionada na tabela entao não faz nada
                for (i = 0; i < model.getColumnCount(); i++) {
                    idAnaliseTabela = model.getColumnName(i);
                    if (idAnaliseTabela.equals(a.getIdAnalise())) {
                        mensagem("Análise já adicionada!", ERRO);
                        return;
                    }
                }

                //verifica se essa analise ja nao esta em outros resultados
                sql = "from ResultadoAnalise where analise='" + analiseSelecionada + "'";
                ResultadoAnalise ra = (ResultadoAnalise) Consultas.getUmaLinha(sql);

                if (ra != null) {
                    mensagem("Análise já adicionada no Resultado " + ra.getResultado().getIdResultado(), ERRO);
                    return;
                }

                jComboBoxAnalisesAdicionadas.addItem(a.getIdAnalise());
                model.addColumn(a.getIdAnalise(), new String[]{
                            "-o-",
                            "-o-",
                            "-o-",
                            "-o-",
                            "-o-",
                            "-o-",
                            "-o-",
                            "-o-",
                            "-o-",
                            "-o-",
                            "-o-",
                            "-o-"});
                return;
            }
        }
    }//GEN-LAST:event_jButtonAddAnaliseActionPerformed

    private void btnExcluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExcluirActionPerformed

        if (resultadoSelecionado == null) {
            String mensagem = "Nenhum resultado selecionado";
            mensagem(mensagem, ERRO);
            return;
        }

        for (Object o : resultadoSelecionado.getResultadoAnalises()) {
            ResultadoAnalise ra = (ResultadoAnalise) o;
            if (!Consultas.removeDoBanco(ra)) {
                mensagem("Erro ao remover Resultado!", ERRO);
                return;
            }
        }

        if (Consultas.removeDoBanco(resultadoSelecionado)) {
            mensagem("Resultado " + resultadoSelecionado.getIdResultado() + " removido com sucesso!", SUCESSO);
            //atualiza a tela
            jListPedidosValueChanged(null);
        } else {
            mensagem("Erro ao remover Resultado!", ERRO);
        }

        resultadoSelecionado = null;
        dataPedido.setEnabled(false);
        jButtonSalvarResultado.setEnabled(false);
        jComboBoxSemente.setEnabled(false);
        jListAnalises.setEnabled(false);
        jButtonListarAnalises.setEnabled(false);
        jButtonAddAnalise.setEnabled(false);

        jListAnalises.setListData(new Object[0]);
        jComboBoxSemente.removeAllItems();

        observacao.setText("");
        numResultado.setText("");
        dataPedido.setText("");

        //limpa a tabela
        DefaultTableModel modell = (DefaultTableModel) tabelaResultados.getModel();
        String data[][] = {};
        String col[] = {};
        modell.setDataVector(data, col);



    }//GEN-LAST:event_btnExcluirActionPerformed

    private void btInformacaoResultadoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btInformacaoResultadoActionPerformed
        if (jListResultados.isSelectionEmpty() == true) {
            String mensagem = "Selecione um resultado para gerar o boletim";
            mensagem(mensagem, ERRO);
            return;
        } else {
            String aux = jListResultados.getSelectedValue().toString();
            String aux2 = jComboBox1.getSelectedItem().toString().toUpperCase();
            String resp1 = "Cezar A. Neuls - CREA 063054-0 RENSAEM 00548/2007";
            String resp2 = "Matheus L. Testa - CREA 000000-0 RENASEM 00000/0000";



            setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
            String arquivo = "relatorios/relatorios/FichaInformacaoResultadoAnalise.jasper";
            // InputStream inputStream = getClass().getResourceAsStream("C:/Users/Eduardo/Documents/NetBeansProjects/Softlabs/relatorios/relatorios/FichaPedidoServico.jasper");
            Map parametros = new HashMap();
            parametros.put("resultado", aux);
            if (aux2.equals("CEZAR A. NEULS")) {
                parametros.put("resp", resp1);
            } else {
                parametros.put("resp", resp2);
            }

            try {
                JasperReport inputStream = (JasperReport) JRLoader.loadObject(arquivo);
                ReportUtils.openReport("Informação de Resultado", inputStream, parametros, ConectaBanco.getPostgreConnection());
                setCursor(Cursor.getDefaultCursor());
            } catch (SQLException exc) {
                exc.printStackTrace();
            } catch (JRException exc) {
                exc.printStackTrace();
            }
        }
    }//GEN-LAST:event_btInformacaoResultadoActionPerformed

    private void jButtonExcluirAnaliseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonExcluirAnaliseActionPerformed
        String analiseParaRemover = jComboBoxAnalisesAdicionadas.getSelectedItem().toString();
        DefaultTableModel model = (DefaultTableModel) tabelaResultados.getModel();
        Vector dataVector = model.getDataVector();
        Vector colunmIndetifiers = new Vector();
        int indexRemover = 0;
        if (analiseParaRemover == null) {
            return;
        }
        String nomeColunaIdAnalise;
        for (int i = 0; i < model.getColumnCount(); i++) {
            nomeColunaIdAnalise = model.getColumnName(i).toString();
            if (nomeColunaIdAnalise.equals(analiseParaRemover)) {
                jComboBoxAnalisesAdicionadas.removeItemAt(i);
                indexRemover = i;
            } else {
                colunmIndetifiers.add(nomeColunaIdAnalise);
            }
        }
        Vector v = null;
        for (Object o : dataVector) {
            v = (Vector) o;
            v.remove(indexRemover);
        }
        model.setDataVector(dataVector, colunmIndetifiers);
    }//GEN-LAST:event_jButtonExcluirAnaliseActionPerformed

    private void preencheListaBusca(List resultList) {
        Vector tableData = new Vector();
        for (Object o : resultList) {
            Cliente cliente = (Cliente) o;
            String nome = cliente.getNomeCliente();
            if (nome == null) { //pessoa jurica
                nome = cliente.getRazaoSocialCliente();
            }
            tableData.add(nome);
            System.out.println(nome);
        }
        if (tableData.size() == 0) {
            tableData.add("Nenhuma ocorrência");
        }
        jListClientes.setListData(tableData);
    }

    private void preencheListaPedidos(Set pedidoServicos) {
        Vector tableData = new Vector();
        for (Object o : pedidoServicos) {
            PedidoServico ps = (PedidoServico) o;
            String pedido = ps.getIdPedidoServico();
            tableData.add(pedido);
        }
        if (tableData.size() == 0) {
            tableData.add("Nenhuma ocorrência");
        }
        jListPedidos.setListData(tableData);
    }

    public void calculaPrecoTotal() {
        DefaultTableModel model = (DefaultTableModel) tabelaNomes.getModel();
        float total = 0;
        for (int i = 0; i < model.getRowCount(); i++) {
            String precoTexto = (String) model.getValueAt(i, 14);
            precoTexto = precoTexto.replace(",", ".");
            float preco = Float.valueOf(precoTexto);
            total += preco;
        }
        String precoTotalStr = Float.toString(total);
        precoTotalStr = precoTotalStr.replace(".", ",");
    }

    public void alteraCursor(int tipo) {
        if (tipo == 1) {
            setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
        }
        if (tipo == 0) {
            setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
        }
    }

    private String getIdDisponivel() {
        Calendar calendar = Calendar.getInstance();
        boolean achou = false;
        int quantidade = Consultas.getCount("select count(*) from Resultado ");
        int ano = calendar.get(Calendar.YEAR);
        String id = Integer.toString(ano) + "/";
        String sequencia = Integer.toString(quantidade + 1);
        String zeros = "";
        int tamanhho = sequencia.length();
        if (tamanhho < 6) {
            int qntdZeros = 6 - tamanhho;
            for (int i = 0; i < qntdZeros; i++) {
                zeros += "0";
            }
        }
        String novoID = id + zeros + sequencia;
        while (!achou) {
            int existeEsseId = Consultas.getCount("select count(idResultado) from Resultado where idResultado = '" + novoID + "'");
            if (existeEsseId == 0) {
                return novoID;
            }
            quantidade++;
            sequencia = Integer.toString(quantidade);
            zeros = "";
            tamanhho = sequencia.length();
            if (tamanhho < 6) {
                int qntdZeros = 6 - tamanhho;
                for (int i = 0; i < qntdZeros; i++) {
                    zeros += "0";
                }
            }
            novoID = id + zeros + sequencia;
        }
        return null;
    }

    private void mensagem(String msg, int tipo) {
        if (tipo == 0) { //erro
            mensagens.setForeground(Color.RED);
            mensagens.setText(msg);
        } else if (tipo == 1) { //sucesso
            mensagens.setForeground(Color.BLUE);
            mensagens.setText(msg);
        }
        if (tipo == 2) { //info
            mensagens.setForeground(Color.black);
            mensagens.setText(msg);
        }
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btInformacaoResultado;
    private javax.swing.JButton btnExcluir;
    private javax.swing.JButton btnNovoResultado;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.JFormattedTextField dataPedido;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButtonAddAnalise;
    private javax.swing.JButton jButtonExcluirAnalise;
    private javax.swing.JButton jButtonListarAnalises;
    private javax.swing.JButton jButtonSalvarResultado;
    private javax.swing.JButton jButtonVisualizaPedido1;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JComboBox jComboBoxAnalisesAdicionadas;
    private javax.swing.JComboBox jComboBoxSemente;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel25;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JList jListAnalises;
    private javax.swing.JList jListClientes;
    private javax.swing.JList jListPedidos;
    private javax.swing.JList jListResultados;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel7;
    private javax.swing.JPanel jPanel8;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane10;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane5;
    private javax.swing.JScrollPane jScrollPane6;
    private javax.swing.JScrollPane jScrollPane7;
    private javax.swing.JScrollPane jScrollPane8;
    private javax.swing.JScrollPane jScrollPane9;
    private javax.swing.JTable jTable1;
    private javax.swing.JTextField jTextFieldBuscaCliente;
    private javax.swing.JTextField jTextFieldNomeCliente;
    private javax.swing.JTextArea mensagens;
    private javax.swing.JTextField numResultado;
    private javax.swing.JTextField observacao;
    private javax.swing.JTable tabelaNomes;
    private javax.swing.JTable tabelaResultados;
    // End of variables declaration//GEN-END:variables
}
